package com.sinosoft.service.impl;

import com.sinosoft.service.IPersonService;
import io.growing.sdk.java.GrowingAPI;
import io.growing.sdk.java.dto.GioCdpEventMessage;
import org.springframework.stereotype.Service;

import java.util.Arrays;

@Service
public class PersonServiceImpl implements IPersonService {

    // Config GrowingIO
    // 参数需要从CDP增长平台上，创建新应用，或从已创建的数据源中获取, 如不清楚请联系您的专属项目经理
    // YourAccountId eg: 0a1b4118dd954ec3bcc69da5138bdb96
    // YourDatasourceId eg: 11223344aabbcc
    private static final GrowingAPI project = new GrowingAPI.Builder().setProjectKey("83b2522b4d9c972a").setDataSourceId("922325f81e4e5c5b").build();

    @Override
    public void insert(String name, String age) {
        // anonymousId 和 loginUserId 参数，不能同时为空
        System.err.println("插入成功");
        GioCdpEventMessage msg = new GioCdpEventMessage
                .Builder()
                .eventTime(System.currentTimeMillis())            // 默认为系统当前时间 (选填)
                .eventKey("insert-person")                             // 事件标识 (必填)
                .domain("com.growingio.app")                      // App包名或H5域名（选填）
                .urlScheme("growing.123c12fb12f123cc")            // 链接协议（选填）
                .deviceBrand("google")                            // 设备品牌（选填）
                .deviceModel("Nexus 5")                           // 设备型号（选填）
                .deviceType("PHONE")                              // 设备类型（选填）
                .appVersion("1.2.4")                              // App版本（选填）
                .appName("看数助手")                               // App名称（选填）
                .language("zh_CN")                                // 语言（选填）
                .anonymousId("device_id")                         // 访问用户ID (选填)
                .loginUserKey("account")  // 登录用户KEY (选填，需有规划并在平台配置后再上报)
                .loginUserId("417abcabcabcbac")                   // 登录用户ID (选填)
                .addEventVariable("product_name", "cdp苹果")       // 事件属性 (选填)
                .addEventVariable("product_classify", Arrays.asList("苹果", "香蕉"))       // 事件属性 (选填)
               // .addEventVariables(map)                           // 事件属性集合 (选填)
                .addItem("itemId", "itemKey")                     // 物品模型ID, KEY (选填)
                .build();
        project.send(msg);
   }

}
